// ******************************************************************************
// Copyright     :  Copyright (C) 2020, Hisilicon Technologies Co. Ltd.
// File name     :  hva_reg_offset.h
// Project line  :  Platform And Key Technologies Development
// Department    :  CAD Development Department
// Version       :  1.0
// Date          :  HVA
// Description   :  The description of xxx project
// Others        :  Generated automatically by nManager V5.1
// ******************************************************************************

#ifndef HVA_REG_OFFSET_H
#define HVA_REG_OFFSET_H

/* HVA_REG Base address of Module's Register */
#define CSR_HVA_REG_BASE (0x43FE000)

/* **************************************************************************** */
/*                      HVA_REG Registers' Definitions                            */
/* **************************************************************************** */

#define CSR_HVA_REG_HVA_FPGA_VER_REG (CSR_HVA_REG_BASE + 0x0)         /* HVA FPGA版本寄存器 */
#define CSR_HVA_REG_HVA_EMU_VER_REG (CSR_HVA_REG_BASE + 0x4)          /* HVA EMU版本寄存器 */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN0_L_REG (CSR_HVA_REG_BASE + 0xC)  /* Memory 属性配置窗口，第一个窗口上限的低32bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN0_H_REG (CSR_HVA_REG_BASE + 0x10) /* Memory 属性配置窗口，第一个窗口上限的高4bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN1_L_REG (CSR_HVA_REG_BASE + 0x14) /* Memory 属性配置窗口，第二个窗口上限的低32bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN1_H_REG (CSR_HVA_REG_BASE + 0x18) /* Memory 属性配置窗口，第二个窗口上限的高4bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN2_L_REG (CSR_HVA_REG_BASE + 0x1C) /* Memory 属性配置窗口，第三个窗口上限的低32bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN2_H_REG (CSR_HVA_REG_BASE + 0x20) /* Memory 属性配置窗口，第三个窗口上限的高4bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN3_L_REG (CSR_HVA_REG_BASE + 0x24) /* Memory 属性配置窗口，第四个窗口上限的低32bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_WIN3_H_REG (CSR_HVA_REG_BASE + 0x28) /* Memory 属性配置窗口，第四个窗口上限的高4bit \
                                                                       */
#define CSR_HVA_REG_HVA_MEM_ATTR_0_REG (CSR_HVA_REG_BASE + 0x30)      /* Memory 属性配置 */
#define CSR_HVA_REG_HVA_MEM_ATTR_1_REG (CSR_HVA_REG_BASE + 0x34)      /* Memory 属性配置 */
#define CSR_HVA_REG_HVA_MEM_ATTR_2_REG (CSR_HVA_REG_BASE + 0x38)      /* Memory 属性配置 */
#define CSR_HVA_REG_HVA_MEM_ATTR_3_REG (CSR_HVA_REG_BASE + 0x3C)      /* Memory 属性配置 */
#define CSR_HVA_REG_HVA_MEM_ATTR_4_REG (CSR_HVA_REG_BASE + 0x40)      /* Memory 属性配置 */
#define CSR_HVA_REG_HVA_AR_CFG_REG (CSR_HVA_REG_BASE + 0x50)          /* AXIM 读控制模式 */
#define CSR_HVA_REG_HVA_WR_CFG_REG (CSR_HVA_REG_BASE + 0x54)          /* AXIM 写控制模式 */
#define CSR_HVA_REG_HVA_ARSTRMID_REG (CSR_HVA_REG_BASE + 0x58)        /* ARUSER中STRMID寄存器配置值 */
#define CSR_HVA_REG_HVA_AWSTRMID_REG (CSR_HVA_REG_BASE + 0x5C)        /* AWUSER中STRMID寄存器配置值 */
#define CSR_HVA_REG_HVA_PEH_ENUM_BAR0_WR_MASK_REG (CSR_HVA_REG_BASE + 0x60) /* 枚举时BAR0写屏蔽信号 */
#define CSR_HVA_REG_HVA_PEH_ENUM_BAR1_WR_MASK_REG (CSR_HVA_REG_BASE + 0x64) /* 枚举时BAR1写屏蔽信号 */
#define CSR_HVA_REG_HVA_PEH_ENUM_BAR2_WR_MASK_REG (CSR_HVA_REG_BASE + 0x68) /* 枚举时BAR2写屏蔽信号 */
#define CSR_HVA_REG_HVA_PEH_ENUM_BAR3_WR_MASK_REG (CSR_HVA_REG_BASE + 0x6C) /* 枚举时BAR3写屏蔽信号 */
#define CSR_HVA_REG_HVA_PEH_ENUM_BAR4_WR_MASK_REG (CSR_HVA_REG_BASE + 0x70) /* 枚举时BAR4写屏蔽信号 */
#define CSR_HVA_REG_HVA_PEH_ENUM_BAR5_WR_MASK_REG (CSR_HVA_REG_BASE + 0x74) /* 枚举时BAR5写屏蔽信号 */
#define CSR_HVA_REG_HVA_PEH_FEATURE_EN_REG (CSR_HVA_REG_BASE + 0x78)        /* PEH feature 配置 */
#define CSR_HVA_REG_HVA_PF_CMD_TYPE_REG (CSR_HVA_REG_BASE + 0x7C)           /* 对应PFSMMU USER中CMD_TYPE的配置寄存器 */
#define CSR_HVA_REG_HVA_INT_STARUS_REG (CSR_HVA_REG_BASE + 0x80)            /* HVA中断状态寄存器 */
#define CSR_HVA_REG_HVA_INT_EN_REG (CSR_HVA_REG_BASE + 0x84)                /* HVA中断使能寄存器 */
#define CSR_HVA_REG_HVA_INT_SET_REG (CSR_HVA_REG_BASE + 0x88)               /* HVA软件模拟中断寄存器 */
#define CSR_HVA_REG_HVA_INT_RAW_STATUS_REG (CSR_HVA_REG_BASE + 0x8C)        /* HVA原始中断状态寄存器 */
#define CSR_HVA_REG_HVA_AXI_ERR_MSK_REG (CSR_HVA_REG_BASE + 0x90)           /* HVA模块AXI总线返回错误屏蔽 */
#define CSR_HVA_REG_HVA_AXI_MAX_TRANS_REG (CSR_HVA_REG_BASE + 0xA0)     /* HVA模块能够发出去AXI transaction的最大数量 */
#define CSR_HVA_REG_HVA_CPI_CFG_REG (CSR_HVA_REG_BASE + 0xB0)           /* HVA配置CPI Function属性 */
#define CSR_HVA_REG_HVA_CPI_CRDT_CFG_REG (CSR_HVA_REG_BASE + 0xB4)      /* HVA接收CPI TLP报文的信用配置 */
#define CSR_HVA_REG_HVA_RAM_ECC_BYPASS_REG (CSR_HVA_REG_BASE + 0xB8)    /* HVA RAM ECC校验bypass配置寄存器 */
#define CSR_HVA_REG_HVA_RAM_ECC_ERR_INS_REG (CSR_HVA_REG_BASE + 0xBC)   /* HVA RAM ECC注错 */
#define CSR_HVA_REG_HVA_FATAL_ERR_CTRL_REG (CSR_HVA_REG_BASE + 0xC0)    /* HVA 致命错误控制 */
#define CSR_HVA_REG_HVA_INNER_CRDT_REG (CSR_HVA_REG_BASE + 0xC4)        /* HVA内部信用配置 */
#define CSR_HVA_REG_HVA_FIFO_AF_CFG_REG (CSR_HVA_REG_BASE + 0xC8)       /* HVA内部将满水线配置寄存器 */
#define CSR_HVA_REG_HVA_BD_CFG_PF_NUM_REG (CSR_HVA_REG_BASE + 0xCC)     /* 后面配置ECAM空间的Function号 */
#define CSR_HVA_REG_HVA_FLR_STA_REG (CSR_HVA_REG_BASE + 0xD0)           /* HVA FLR装态寄存器 */
#define CSR_HVA_REG_HVA_DFX_CFG_REG (CSR_HVA_REG_BASE + 0x200)          /* DFX配置寄存器 */
#define CSR_HVA_REG_HVA_DFX_CPL_BW0_REG (CSR_HVA_REG_BASE + 0x210)      /* NPQ完成包的带宽统计寄存器 */
#define CSR_HVA_REG_HVA_DFX_CPL_BW1_REG (CSR_HVA_REG_BASE + 0x220)      /* NPQ完成包的带宽统计寄存器 */
#define CSR_HVA_REG_HVA_DFX_NPQ_DB_STATE_REG (CSR_HVA_REG_BASE + 0x230) /* NPQ databuffer状态寄存器 */
#define CSR_HVA_REG_HVA_DFX_TX_CPL_CNT0_REG (CSR_HVA_REG_BASE + 0x240)  /* HVA返回完成包数量统计 */
#define CSR_HVA_REG_HVA_DFX_TX_CPL_CNT1_REG (CSR_HVA_REG_BASE + 0x250)  /* HVA返回完成包数量统计 */
#define CSR_HVA_REG_HVA_NPQ_PTR_REG (CSR_HVA_REG_BASE + 0x260)          /* HVA NPQ的指针信息 */
#define CSR_HVA_REG_HVA_DFX_P_BW0_REG (CSR_HVA_REG_BASE + 0x270)        /* P报文带宽统计寄存器 */
#define CSR_HVA_REG_HVA_DFX_P_BW1_REG (CSR_HVA_REG_BASE + 0x280)        /* P报文带宽统计寄存器 */
#define CSR_HVA_REG_HVA_DFX_P_CNT_REG (CSR_HVA_REG_BASE + 0x290)        /* 接收P报文数量统计 */
#define CSR_HVA_REG_HVA_DFX_PQ_PTR_REG (CSR_HVA_REG_BASE + 0x2A0)       /* HVA PQ的指针信息 */
#define CSR_HVA_REG_HVA_DFX_PQ_WR_ERR_REG (CSR_HVA_REG_BASE + 0x2B0)    /* HVA PQ转换为AXI写返回错误 */
#define CSR_HVA_REG_HVA_DFX_PQ_WR_ERR_ADDR_H_REG (CSR_HVA_REG_BASE + 0x2C0)   /* HVA PQ转换为AXI写返回错误地址 */
#define CSR_HVA_REG_HVA_DFX_PQ_WR_ERR_ADDR_L_REG (CSR_HVA_REG_BASE + 0x2D0)   /* HVA PQ转换为AXI写返回错误地址 */
#define CSR_HVA_REG_HVA_DFX_TLP_ZERO_LEN_REG (CSR_HVA_REG_BASE + 0x2E0)       /* HVA接收到ZERO LENGTH操作的TLP报文 */
#define CSR_HVA_REG_HVA_DFX_AXI_BID_ERR_REG (CSR_HVA_REG_BASE + 0x2F0)        /* HVA接收到一个非法的bid */
#define CSR_HVA_REG_HVA_DFX_DB_ECC_ERR_ADDR_REG (CSR_HVA_REG_BASE + 0x300)    /* HVA memory发生ECC错误的地址 */
#define CSR_HVA_REG_HVA_DFX_ENTRY_ECC_ERR_ADDR_REG (CSR_HVA_REG_BASE + 0x310) /* HVA memory发生ECC错误的地址 */
#define CSR_HVA_REG_HVA_DFX_MEM_CERR_CNT_REG (CSR_HVA_REG_BASE + 0x320)       /* HVA中memory发生可纠错误的次数统计 */
#define CSR_HVA_REG_HVA_DFX_MEM_UCERR_CNT_REG (CSR_HVA_REG_BASE + 0x324)      /* HVA中memory发生不可纠错误的次数统计 */
#define CSR_HVA_REG_HVA_DFX_ECC_STA_REG (CSR_HVA_REG_BASE + 0x330)            /* HVA中memory ECC错误状态 */
#define CSR_HVA_REG_HVA_OP_BAR_ADDR_ERR_REG (CSR_HVA_REG_BASE + 0x3A0)        /* 访问BAR的地址出错 */
#define CSR_HVA_REG_HVA_OP_BAR_ADDR_ERR_CNT_REG (CSR_HVA_REG_BASE + 0x3A4)    /* 访问BAR的地址出错次数统计 */
#define CSR_HVA_REG_CPI_HVA_REQ_TLP_NUM_REG (CSR_HVA_REG_BASE + 0x3A8)        /* CPI送给HVA请求TLP数量统计 */
#define CSR_HVA_REG_HVA_CPI_REQ_TLP_NUM_REG (CSR_HVA_REG_BASE + 0x3AC)        /* HVA送给CPI请求TLP数量统计 */
#define CSR_HVA_REG_CPL_TLP_NUM_REG (CSR_HVA_REG_BASE + 0x3B0)                /* 完成包数量统计 */
#define CSR_HVA_REG_HVA_SMMU_AXI_RD_NUM_REG (CSR_HVA_REG_BASE + 0x3B4) /* HVA与SMMU之间AXI读请求及其返回数量统计 */
#define CSR_HVA_REG_HVA_SMMU_AXI_WR_NUM_REG (CSR_HVA_REG_BASE + 0x3B8) /* HVA与SMMU之间AXI写请求数量统计 */
#define CSR_HVA_REG_HVA_AXI_B_NUM_REG (CSR_HVA_REG_BASE + 0x3BC)       /* AXI写响应数量统计 */
#define CSR_HVA_REG_DISP_HVA_AXI_RD_NUM_REG (CSR_HVA_REG_BASE + 0x3C0) /* HVA与Dispatch之间AXI读请求及其返回数量统计 \
                                                                        */
#define CSR_HVA_REG_DISP_HVA_AXI_WR_NUM_REG (CSR_HVA_REG_BASE + 0x3C4) /* HVA与Dispatch之间AXI写请求数量统计 */
#define CSR_HVA_REG_HVA_CPI_CPL_TNUM_REG (CSR_HVA_REG_BASE + 0x3C8)    /* HVA返回CPI完成包数量统计 */
#define CSR_HVA_REG_MSI_LEN_ERR_REG (CSR_HVA_REG_BASE + 0x3CC)     /* CPI送给HVA的MSI/MSIX报文的长度或者DW_BE填充错误 */
#define CSR_HVA_REG_HVA_LAT_STS_CFG_REG (CSR_HVA_REG_BASE + 0x400) /* 时延检测控制寄存器 */
#define CSR_HVA_REG_HVA_WR_BP_CFG_REG (CSR_HVA_REG_BASE + 0x404)   /* 写报文延时反压阈值配置寄存器 */
#define CSR_HVA_REG_HVA_RD_BP_CFG_REG (CSR_HVA_REG_BASE + 0x408)   /* 读报文延时反压阈值配置寄存器 */

#endif // HI1823_REG_OFFSET_H
